﻿namespace TS2015.Models
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Data.Entity.Spatial;
    using System.Web.Script.Serialization;

    [Table("TbThiSinh")]
    public partial class TbThiSinh
    {
        public TbThiSinh()
        {
            TbDiemTotNghieps = new HashSet<TbDiemTotNghiep>();
            TbThiSinh_BacDaoTaos = new HashSet<TbThiSinh_BacDaoTao>();
            TbThiSinh_Truongs = new HashSet<TbThiSinh_Truong>();
        }
        [Key]
        [StringLength(10)]
        [Display(Name = "Mã TS")]
        public string MaTS { get; set; }

        //[Required(ErrorMessage = " ")]
        //public int IDTruong { get; set; }

        //[Required(ErrorMessage = " ")]
        [StringLength(15)]
        public string SBD { get; set; }

        [StringLength(10)]
        public string MaTruongDH { get; set; }

        public int? MaXepLoaiHS { get; set; }

        [Required(ErrorMessage = " ")]
        [Display(Name = "Họ đệm")]
        [StringLength(50)]
        public string HoDem { get; set; }

        [Required(ErrorMessage = " ")]
        [Display(Name = "Tên")]
        [StringLength(50)]
        public string Ten { get; set; }

        [Display(Name = "Họ và tên")]
        public string FullName { get { return HoDem + " " + Ten; } }
        //[Required(ErrorMessage = " ")]
        public GioiTinh GioiTinh { get; set; }

        [Required(ErrorMessage = " ")]
        [Display(Name = "Ngày sinh")]
        [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]       
        public DateTime NgaySinh { get; set; }

        public bool? ChatLuongCao { get; set; }
        //[Required(ErrorMessage = " ")]
        [StringLength(50)]
        [Display(Name = "Email")]
        //[DataType(DataType.EmailAddress, ErrorMessage=" ")]
        [EmailAddress(ErrorMessage = " ")]
        public string Email { get; set; }

        [StringLength(11)]
        [Required(ErrorMessage = "Không được để trống")]
        //[RegularExpression("^(0\d{9,10})$", ErrorMessage = " ")]
        [Display(Name = "Số điện thoại")]
        public string SoDienThoai { get; set; }

        [Required(ErrorMessage = " ")]
        public int MaDanToc { get; set; }

        [Required(ErrorMessage = " ")]
        [Display(Name = "Huyện")]
        [StringLength(10)]
        public string MaHuyen { get; set; }

        [Required(ErrorMessage = " ")]
        [Display(Name = "Địa chỉ")]
        [StringLength(50)]
        public string DiaChi { get; set; }

        [Required(ErrorMessage = " ")]
        [Display(Name = "CMND")]
        [StringLength(15)]
        public string CMND { get; set; }

        public bool? LienKetQT { get; set; }

        [Display(Name = "Cơ quan công tác")]
        [StringLength(50)]
        public string CoQuanCongTac { get; set; }

        [Range(0,10)]
        [Display(Name = "Điểm lớp 10")]
        public double? DiemLop10 { get; set; }

        [Range(0, 10)]
        [Display(Name = "Điểm lớp 11")]
        public double? DiemLop11 { get; set; }


        [Display(Name = "Điểm TBTHPT")]
        public double? DiemTBTHPT { get; set; }

        [Range(0, 10)]
        [Display(Name = "Điểm lớp 12")]
        public double? DiemLop12 { get; set; }

        public int? TinhTrangTotNghiep { get; set; }

        [Display(Name = "Điểm TBTN")]
        public double? DiemTBTN { get; set; }

        [Display(Name = "Năm tốt nghiệp")]
        [StringLength(4)]
        public string NamTotNghiep { get; set; }

        [Display(Name = "Nơi tốt nghiệp")]
        [StringLength(50)]
        public string NoiTotNghiep { get; set; }

        [StringLength(100)]
        [Display(Name = "Ảnh trình chiếu"), FileExtensions(Extensions = ".png,.jpg,.jpeg,.gif,.bmp", ErrorMessage = "Tệp tin không đúng định dạng")]
        public string Anh { get; set; }

        [Required(ErrorMessage = " ")]
        public int MaDoiTuong { get; set; }

        //[Required(ErrorMessage = " ")]
        //public int MaHeDaoTao { get; set; }

        //public HeDaoTaoKhac HeDaoTaoKhac { get; set; }
        //public NoiDaoTao NoiDaoTao { get; set; }

        [Required(ErrorMessage = " ")]
        [StringLength(10)]
        public string MaChuyenNganh { get; set; }

        [Display(Name = "Đóng tiền")]
        public bool TrangThaiDongTien { get; set; }

        [Display(Name = "Đăng ký")]
        public HinhThucDK HinhThucDK { get; set; }

        [Display(Name = "Hoàn thành")]
        public bool? TrangThaiHoanThanh { get; set; }

        [Display(Name = "Ngày đăng ký")]
        [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]     
        public DateTime NgayDangKi { get; set; }

        [Display(Name = "Ngày đóng tiền")]
        [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]     
        public DateTime? NgayDongTien { get; set; }

        [Display(Name = "Ngày hoàn thành")]
        [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]     
        public DateTime? NgayHoanThanhDK { get; set; }

        [Display(Name = "Lần cuối sửa")]
        [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]     
        public DateTime? LanSuaCuoi { get; set; }

        [ScriptIgnore]
        public  TbDanToc TbDanToc { get; set; }

        [ScriptIgnore]
        public  TbDoiTuongUuTien TbDoiTuongUuTien { get; set; }

        //[ScriptIgnore]
        //public  TbHeDaoTao TbHeDaoTao { get; set; }

        [ScriptIgnore]
        public  TbChuyenNganh TbChuyenNganh { get; set; }

        [ScriptIgnore]
        public  TbXepLoaiH TbXepLoaiH { get; set; }

        //[ScriptIgnore]
        //public TbTruongTHPT TbTruongTHPT { get; set; }

        [ScriptIgnore]
        public  TbHuyen TbHuyen { get; set; }

        [ScriptIgnore]
        public TbTruongDH TbTruongDH { get; set; }

        public ICollection<TbDiemTotNghiep> TbDiemTotNghieps { get; set; }

        public ICollection<TbThiSinh_BacDaoTao> TbThiSinh_BacDaoTaos { get; set; }

        public ICollection<TbThiSinh_Truong> TbThiSinh_Truongs { get; set; }
    }
}
